package com.java1412.device.service.impl;

import java.util.List;

import com.java1412.device.domain.DeviceDTO;
import com.java1412.devicetype.domain.ImsDeviceType;
import com.java1412.devicetype.mapper.ImsDeviceTypeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.java1412.device.mapper.ImsDeviceMapper;
import com.java1412.device.domain.ImsDevice;
import com.java1412.device.service.IImsDeviceService;

/**
 * 设备追加属性Service业务层处理
 *
 * @author ruoyi
 * @date 2023-11-20
 */
@Service
public class ImsDeviceServiceImpl implements IImsDeviceService
{
    @Autowired
    private ImsDeviceMapper imsDeviceMapper;

    @Autowired
    private ImsDeviceTypeMapper imsDeviceTypeMapper;

    /**
     * 查询设备追加属性
     *
     * @param id 设备追加属性主键
     * @return 设备追加属性
     */
    @Override
    public ImsDevice selectImsDeviceById(Long id)
    {
        return imsDeviceMapper.selectImsDeviceById(id);
    }

    /**
     * 查询设备追加属性列表
     *
     * @param imsDevice 设备追加属性
     * @return 设备追加属性
     */
    @Override
    public List<ImsDevice> selectImsDeviceList(ImsDevice imsDevice)
    {
        return imsDeviceMapper.selectImsDeviceList(imsDevice);
    }

    /**
     * 新增设备追加属性
     *
     * @param deviceDTO 设备追加属性
     * @return 结果
     */
    @Override
    public int insertImsDevice(DeviceDTO deviceDTO)
    {
        //添加设备类型表中的数据
        ImsDeviceType imsDeviceType = new ImsDeviceType();
        imsDeviceType.setDeviceName(deviceDTO.getDeviceName());
        imsDeviceType.setAppendFields(deviceDTO.getAppendFields());
        //检测参数中是否包含设备类型，如果上传了设备类型id则表示有类型数据，没有则进行新增
        if(deviceDTO.getDeviceTypeId()==0){
            imsDeviceTypeMapper.insertImsDeviceType(imsDeviceType);
            deviceDTO.setDeviceTypeId(imsDeviceType.getId());
        }

        //添加设备属性表中的数据
        ImsDevice imsDevice = new ImsDevice();
        imsDevice.setDeviceTypeId(deviceDTO.getDeviceTypeId());
        imsDevice.setDeviceId(deviceDTO.getDeviceId());
        imsDevice.setAppendTheAttributeAndValue(deviceDTO.getAppendTheAttributeAndValue());

        return imsDeviceMapper.insertImsDevice(imsDevice);
    }

    /**
     * 修改设备追加属性
     *
     * @param imsDevice 设备追加属性
     * @return 结果
     */
    @Override
    public int updateImsDevice(ImsDevice imsDevice)
    {
        return imsDeviceMapper.updateImsDevice(imsDevice);
    }

    /**
     * 批量删除设备追加属性
     *
     * @param ids 需要删除的设备追加属性主键
     * @return 结果
     */
    @Override
    public int deleteImsDeviceByIds(Long[] ids)
    {
        return imsDeviceMapper.deleteImsDeviceByIds(ids);
    }

    /**
     * 删除设备追加属性信息
     *
     * @param id 设备追加属性主键
     * @return 结果
     */
    @Override
    public int deleteImsDeviceById(Long id)
    {
        return imsDeviceMapper.deleteImsDeviceById(id);
    }
}
